home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / info-service / wais / ir-book-sources / bool / bv.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-04-08  |  1.5 KB  |  73 lines

  1. /***************************  bv-bool-ops.h  *****************************
  2.  
  3.   Purpose:    External declarations for boolean operations implemented
  4.           as bit vectors.
  5.  
  6.   Provenance:    Written and tested by S. Wartik, April 1991.
  7.  
  8.   Notes:    None.
  9.  
  10. **/
  11.  
  12. #ifndef TRUE
  13. #   define TRUE 1
  14. #   define FALSE 0
  15.     typedef int boolean;
  16. #endif
  17.  
  18. #define MAX_ELEMENTS 256
  19. #define WORDSIZE 8
  20.  
  21. typedef struct {    /* A set consists of the bounds    */
  22.     int     lower;    /* defined for it, and space to    */
  23.     int     upper;    /* record what's in it.        */
  24.     char    bits[MAX_ELEMENTS/WORDSIZE];
  25. } set;
  26.  
  27. typedef int    elementType;  /* The element type is defined as "int".  It  */
  28.                   /* could be changed to any scalar type.       */
  29.  
  30. #ifdef __STDC__
  31.  
  32. extern void Create(int lower, int upper, set *s);
  33.  
  34. extern void Clear(set *s);
  35. extern void Insert(set *s, elementType e);
  36. extern void Delete(set *s, elementType e);
  37.  
  38. extern void Unite(set *s1, set *s2, set *s3);
  39. extern void Intersect(set *s1, set *s2, set *s3);
  40. extern void Subtract(set *s1, set *s2, set *s3);
  41.  
  42. extern boolean Empty(set *s);
  43. extern boolean Member(set *s, elementType e);
  44.  
  45. extern void Copy(set *source, set *destination);
  46.  
  47. extern void Iterate(set *s, boolean (*f)());
  48.  
  49. boolean Error_Occurred();
  50.  
  51. #else
  52.  
  53. extern void Create();
  54.  
  55. extern void Clear();
  56. extern void Insert();
  57. extern void Delete();
  58.  
  59. extern void Unite();
  60. extern void Intersect();
  61. extern void Subtract();
  62.  
  63. extern boolean Empty();
  64. extern boolean Member();
  65.  
  66. extern void Copy();
  67.  
  68. extern void Iterate();
  69.  
  70. extern boolean Error_Occurred();
  71.  
  72. #endif
  73.